﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using Datos.Fabricas;
using Datos.Interfaces;
using Datos.Entidades;
using Datos.Entidades.FabricaEntidades;
using log4net;

namespace Datos.DAOSqlServer
{
    public class DAOSqlAccesoToken : IDAOAccesoToken
    {
        #region Logger
        private static readonly ILog log = LogManager.GetLogger(
        System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

        #endregion 

        IDAOAccesoConexion bd = FabricaConexion.DAOSqlServerAccesoConexion();

         #region Constructor
        public DAOSqlAccesoToken()
        {
            log.Info("Conexion DAOSqlAccesoToken");
        }
        #endregion

        #region Metodos
        public bool InsertarToken(Entidad token)
        {
            SqlCommand command = new SqlCommand();
            try
            {
                bd.AbrirConexionBd();
                command.Connection = bd.ObjetoConexion();
                command.CommandType = System.Data.CommandType.StoredProcedure;
                command.CommandText = "[dbo].[INSToken]";
                command.CommandTimeout = 10;

                //command.Parameters.AddWithValue("@Id_Usuario", (usuario as Usuario).Id_Usuario);
                command.Parameters.AddWithValue("@Fecha", (token as TokenSeguridad).Fecha);
                command.Parameters.AddWithValue("@Hora", (token as TokenSeguridad).Hora);
                command.Parameters.AddWithValue("@Minuto", (token as TokenSeguridad).Minuto);
                command.Parameters.AddWithValue("@Fk_Id_Administrador", (token as TokenSeguridad).Fk_Id_Administrador);
                command.Parameters.AddWithValue("@token", (token as TokenSeguridad).Token);

                


                SqlDataReader reader = command.ExecuteReader();
                log.Info("Se genero la consulta de Insertar token");
                reader.Close();
                bd.CerrarConexionBd();
                return true;
            }
            catch (SqlException)
            {
                log.Error("No se genero la consulta");
                bd.CerrarConexionBd();
                return false;
            }
            catch (Exception)
            {
                log.Error("Error en la aplicacion");
                bd.CerrarConexionBd();
                return false;
            }
        }
        #endregion

    }
}
